x | y
<- Operador O
x & y
<- OPerador Y
!x
<- Negación
isTRUE(x)
<- X es verdad?
==
<- Comparación
<, < =, >, > =
<- Mayor, Mayor o igual, Menor y Menor o igual.
%in%
<- Permite determinar si uno o varios valores están contenidos en un vector.
Con el fin de buscar un mejor integración con el usuario R ofrece las estructuras de control if, else, ifelse
La construcción de las anteriores se presenta a continuación.
if (condicion){
Instruccion_1
Instruccion_2
Instruccion_3
}
else {
Instruccion_1
Instruccion_2
}
La siguiente instrucción es usada cuando se quieren aplicar estructuras de control para procesos sencillos y cortos.
ifelse(Condición, Operación si cumple, Operación No cumple)
compra <- c(rep("s",4), rep("n",5))
ifelse(compra == "s", 0, 1)
## [1] 0 0 0 0 1 1 1 1 1
R nos proporciona la posibilidad de crear los siguientes tipos de ciclos. for, while, repeat
A continuación se presenta la estructura para la creación de cada uno de estos.
for (i in secuencia) {
operación_1
operación_2
operación_3
}
vec <- vector()
for (i in 1:4) {
vec[i] <- i
return(vec)
}
while (condición) {
operación_1
operación_2
operación_3
}
contrasena <- readline("Ingrese la contraseña")
con = 0
while (contrasena != "hola") {
print("Contraseña incorrecta")
contrasena <- readline("Ingrese la contraseña")
con = con + 1
if (con ==3) {
break
}
}
repeat {
operación_1
operación_2
if(condición) break()
}
x <- 0
repeat {
print(x)
x = x+1
if (x == 3){
break
}
}
## [1] 0
## [1] 1
## [1] 2
En R es posible crear funciones de la siguiente manera.
nombre_función <- function(parametro1, parametro2, .....){
procedimiento_1
procedimiento_2
procedimiento_3
return(resultado)
}
x <- 1:20
conteo <- function(vector){
con <- length(vector)
cat('El vector tiene', con, ' elementos')
}
conteo(x)
## El vector tiene 20 elementos
La función which()
detecta las posiciones donde el vector lógico cumple la condición dada:
v <- c(1,4,3,57,3,46)
v
## [1] 1 4 3 57 3 46
which( v == 3)
## [1] 3 5
which.max(v)
## [1] 4
which.min(v)
## [1] 1
La función case_when()
pertenece al paquete gdata
y permite asignar valores dado condiciones.
library(dplyr)
x <- 1:50
case_when(
x %% 35 == 0 ~ "fizz buzz",
x %% 5 == 0 ~ "fizz",
x %% 7 == 0 ~ "buzz",
TRUE ~ as.character(x)
)
## [1] "1" "2" "3" "4" "fizz"
## [6] "6" "buzz" "8" "9" "fizz"
## [11] "11" "12" "13" "buzz" "fizz"
## [16] "16" "17" "18" "19" "fizz"
## [21] "buzz" "22" "23" "24" "fizz"
## [26] "26" "27" "buzz" "29" "fizz"
## [31] "31" "32" "33" "34" "fizz buzz"
## [36] "36" "37" "38" "39" "fizz"
## [41] "41" "buzz" "43" "44" "fizz"
## [46] "46" "47" "48" "buzz" "fizz"
Se usa la función readline()
para ingresar valores por consola.
x <- readline("nombre?")
## nombre?
x
## [1] ""
Se usan las funciones cat()
y print()
para imprimir valores por consola. La diferencia entres estas dos funciones es el tipo de objeto de devuelven.
class(print(paste("edad:",20)))
## [1] "edad: 20"
## [1] "character"
class(cat(paste("edad: ",20)))
## edad: 20
## [1] "NULL"